﻿Imports System.ServiceModel
Imports AFS.Collab.MainEnumsAndTypes.MainTypesAndEnums
Imports AFS.Aspnet.Collaboration.Site.MandateAufstellung

' HINWEIS: Mit dem Befehl "Umbenennen" im Kontextmenü können Sie den Schnittstellennamen "IAFSForMetroService" sowohl im Code als auch in der Konfigurationsdatei ändern.
<ServiceContract(CallbackContract:=GetType(ICallbackInterface), SessionMode:=SessionMode.Required)>
Public Interface IAFSForMetroService


#Region "mandate db new"

    <OperationContract(IsOneWay:=True)>
    Sub RetrieveAllSaveMandate()

    <OperationContract(IsOneWay:=True)>
    Sub DeleteMandat(ByVal id As String)

    <OperationContract(IsOneWay:=True)>
    Sub AddNewMandate(ByVal a As List(Of MandateAufstellung.MandateAnzahlen))

    <OperationContract(IsOneWay:=True)>
    Sub AddNewMandat(ByVal a As MandateAufstellung.MandateAnzahlen)


    <OperationContract(IsOneWay:=True)>
    Sub EditMandat(ByVal Mandat As MandateAnzahlen)

#Region "statusfile"
    <OperationContract(IsOneWay:=True)>
    Sub ReadStatusFile()
#End Region

    <OperationContract(IsOneWay:=True)>
    Sub SearchForMandate(ByVal datum As String, ByVal rayon As String, ByVal type As String)

    <OperationContract(IsOneWay:=True)>
    Sub DeleteMandateByDates(ByVal dates As String)

    <OperationContract(IsOneWay:=True)>
    Sub CleareMandateTable()
#End Region

#Region "metro notification"

    <OperationContract()>
    Function RegisterMetroStyleApp(ByVal appid As String, ByVal cid As String, ByVal clsecret As String) As Boolean

    <OperationContract>
    Function UnregisterMetroStyleApp(ByVal appid As String) As Boolean

    <OperationContract()>
    Function RegisterMetroOrPhoneApp(ByVal appid As String, ByVal typeofApp As enumTypeofApps, ByVal channel As String) As Boolean

    <OperationContract()>
    Function UnRegisterMetroOrPhoneApp(ByVal appid As String, ByVal typeofapp As enumTypeofApps) As Boolean

#End Region

#Region "Workday service addance"

    <OperationContract(IsOneWay:=True)>
    Sub AddNewWorkDay(ByVal workday As ArbAuf.Arbeitsaufzeichnung)

    <OperationContract(IsOneWay:=True)>
    Sub DeleteWorkDay(ByVal id As String)

    <OperationContract(IsOneWay:=True)>
    Sub EditWorkDay(ByVal eWorkday As ArbAuf.Arbeitsaufzeichnung)

    <OperationContract(IsOneWay:=True)>
    Sub EnumerateWorkdayForMonth(ByVal MonthNumber As String)

    <OperationContract(IsOneWay:=True)>
    Sub EnumerateAllWorkdays()

    <OperationContract(IsOneWay:=True)>
    Sub ClearWorkDayTable()
#End Region

#Region "ArbeitsTypen service addance"
    <OperationContract(IsOneWay:=True)>
    Sub AddArbeitsType(ByVal typ As ArbAuf.Typen)

    <OperationContract(IsOneWay:=True)>
    Sub EditArbeitType(ByVal type As ArbAuf.Typen)

    <OperationContract(IsOneWay:=True)>
    Sub DeleteArbeitsType(ByVal type As ArbAuf.Typen)

    <OperationContract(IsOneWay:=True)>
    Sub EnumerateArbeitsTypen() 'As List(Of ArbAuf.Typen)

    <OperationContract(IsOneWay:=True)>
    Sub ClearTypenTable()
#End Region


#Region "common upload download db tasks"
    <OperationContract(IsOneWay:=True)>
    Sub UploadMandateDbToBackServerManual()

    <OperationContract(IsOneWay:=True)>
    Sub DownloadMandateDbFromBackServerManual()

    <OperationContract(IsOneWay:=True)>
    Sub UploadDBToBackServerManual()

    <OperationContract(IsOneWay:=True)>
    Sub DownloadDbFromBackServerManual()

#End Region
End Interface
